﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.SqlClient;
using Entidad;

namespace Persistencia
{
    public class TipoMaquinariaDAL
    {
        public List<TipoMaquinaria> TraerTodos(string strNombre)
        {
            SqlConnection cn = Conexion.Conectar();
            try
            {
                SqlCommand cmd = new SqlCommand("spTipoMaquinariaSel", cn);
                cmd.Parameters.Add(new SqlParameter("@Codigo", null));
                cmd.Parameters.Add(new SqlParameter("@Nombre", strNombre));

                cmd.CommandType = CommandType.StoredProcedure;
                SqlDataAdapter da = new SqlDataAdapter(cmd);

                DataSet ds = new DataSet();
                da.Fill(ds, "TipoMaquinaria");

                /*Creo la lista*/
                List<TipoMaquinaria> Lista = (from item in ds.Tables[0].AsEnumerable()
                                              select new TipoMaquinaria()
                                           {
                                               Codigo = item.Field<int>("Codigo"),
                                               Nombre = item.Field<string>("Nombre"),
                                               Descripcion = item.Field<string>("Descripcion"),

                                           }).ToList();
                return Lista;

            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                cn.Close();
            }
        }

        public int Insertar(TipoMaquinaria objTipoMaquinaria)
        {
            SqlConnection cn = Conexion.Conectar();
            try
            {
                SqlCommand cmd = new SqlCommand("spTipoMaquinariaIns", cn);
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.Parameters.Add(new SqlParameter("@Nombre", objTipoMaquinaria.Nombre));
                cmd.Parameters.Add(new SqlParameter("@Descripcion", objTipoMaquinaria.Descripcion));

                return cmd.ExecuteNonQuery();
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                cn.Close();
            }
        }

        public int Modificar(TipoMaquinaria objTipoMaquinaria)
        {
            SqlConnection cn = Conexion.Conectar();
            try
            {
                SqlCommand cmd = new SqlCommand("spTipoMaquinariaUpd", cn);
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.Parameters.Add(new SqlParameter("@Codigo", objTipoMaquinaria.Codigo));
                cmd.Parameters.Add(new SqlParameter("@Nombre", objTipoMaquinaria.Nombre));
                cmd.Parameters.Add(new SqlParameter("@Descripcion", objTipoMaquinaria.Descripcion));

                return cmd.ExecuteNonQuery();
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                cn.Close();
            }
        }

        public int Eliminar(int intCodigo)
        {
            SqlConnection cn = Conexion.Conectar();
            try
            {
                SqlCommand cmd = new SqlCommand("spTipoMaquinariaDel", cn);
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.Parameters.Add(new SqlParameter("@Codigo", intCodigo));
                return cmd.ExecuteNonQuery();
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                cn.Close();
            }
        }
    }
}
